/*
 * @Descripttion: 
 * @version: 
 * @Author: sueRimn
 * @Date: 2023-11-06 20:19:43
 * @LastEditors: sueRimn
 * @LastEditTime: 2023-11-06 20:20:02
 */
class StringUtil {


    /**
     *  主要针对 {} 替换
     * @param strPatten {String}
     * @param optionalParams {any} 可选参数
     * @return {string} 返回格式化后的字符串
     */
    static format(strPatten, ...optionalParams) {
        //
        if (strPatten === "" || optionalParams.length === 0) {
            return strPatten;
        }
        optionalParams.forEach(value => strPatten = strPatten.replace('{}', value));
        return strPatten;
    }

    /**
     * 通过对象进行格式化
     * @param template {String} 例如'abc{text}'
     * @param obj {Object} 对象 例如{text:'张三'}
     * @param ignoreEmpty {boolean} 是否忽略空
     */
    static formatByObj(template, obj, ignoreEmpty) {

        if (!template) {
            return '';
        }
        if (obj === null) {
            return template;
        }
        template = template.toString();

        for (let key in obj) {
            const value = obj[key];
            if (ignoreEmpty && StringUtil.isEmpty(value)) {
                continue;
            }
            template = template.replace(new RegExp('{' + key + '}', 'g'), value);
        }


        return template;


    }


}

module.exports = StringUtil;